The present disclosure relates generally to information handling systems, and more particularly to the use of linguistic semantic analysis to integrate applications for use with information handling systems.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Information handling systems such as, for example, server devices, storage devices, networking devices, and/or other computing devices, utilize applications that interact with the hardware and software in the computing devices. However, the integration of applications for use with computing devices raises some issues. For example, a computing device manufacturer may integrate applications with their computing devices that monitor the hardware and software in those computing devices, which typically involves identifying the systems management artifacts developed for the hardware (e.g., Management Information Bases (MIBs), Common Management Information (CMI) profiles, JavaScript Object Notation (JSON) schemas, Representational State Transfer (REST) interfaces, Application Programming Interfaces (APIs), etc.), and write code that integrates those system management artifacts with the applications. However, such activities are time intensive, as significant effort is involved in understanding and analyzing the meaning of elements utilized by the system management artifacts. Furthermore, requests for application integration are frequent, and the time intensive process discussed above prevents many of those requests from being satisfied. Further still, even when such requests are filled, integrating applications to operate with current computing device firmware is associated with the same issues, and thus even integrated applications will quickly fail to operate with all available firmware functionality. Providing support for new computing device products presents similar issues, as even when a computing device product is provided with a library (e.g., a Python or Powershell library), application integration requires those libraries be studied to understand the meaning of their terms, and write “glue” logic to integrate them to operate with those applications.
For example, development operations (devops) software such as, for example, Ansible software available at www.ansible.com and SaltStack software available at www.saltstack.com, provide for the integration of a variety of application modules with that devops software. Conventionally, computing device manufacturers develop plug-ins for those application modules (and maintain those plug-ins) “by hand” via RESTful/Web Services Management (WSMan) interfaces provided by the computing device or the Python/Powershell/Java libraries utilized by the computing device. Disruptions (new software, product phase-out, etc.), changes in devops software roadmaps, and continuous development of dependent components typically requires a team of engineers to continually sustain and keep support for the application modules up to date.
Accordingly, it would be desirable to provide for improved integration of applications for use with computing devices.